Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.02.2023, 02:16
Аватар для NeonMan
Кандидат Javascript-наук
Отправить личное сообщение для NeonMan Посмотреть профиль Найти все сообщения от NeonMan
 
Регистрация: 22.07.2018
Сообщений: 123

Асинхронность
Вопрос 1:

let x = await f1();
let y = await f2();
console.log(x, y);


Такой код вызовет функцию f2 только после завершения функции f1 (обе функции - длительные и асинхронные, например, запросы к API). Подскажите пожалуйста, как переписать код, чтобы функция f2 запускалась до завершения f1, но последующий вывод в консоль всё равно дожидался завершения обоих.

Вопрос 2:
Как в async/await-коде сделать паузу на пару секунд?
Ответить с цитированием
  #2 (permalink)  
Старый 22.02.2023, 02:44
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,013

1) const [x, y] = await Promise.all([f1(), f2()]);

или, как вариант,
const px = f1();
const py = f2();
const x = await px;
const y = await py;


эти два варианта чуть по-разному ведут себя в случае отклоненного промиса, но если всё нормально зарезолвится, то одинаково.

ещё есть Promise.allSettled, это как раз на случай реджектов.

2)
const delay = (ms) => new Promise((r) => setTimeout(r, ms));

...
await delay(2000);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Асинхронность, Promise, Callback, onload Stanislavsonder Общие вопросы Javascript 11 07.03.2021 12:44
Асинхронность callback с return и throw victornalchik Элементы интерфейса 12 25.10.2018 08:53
Как работает асинхронность? vitalyas Node.JS 11 25.02.2018 14:52
Как быть тут? (Асинхронность) Urukhay Общие вопросы Javascript 6 10.11.2014 17:57
Асинхронность в JavaScript devote Events/DOM/Window 64 12.09.2011 05:30